Estudio Empírico sobre el Precio de Acciones de Tesla Inc.
[PLACEHOLDER: Explica la relevancia de Tesla, su importancia en el mercado global, volatilidad e impacto para inversionistas]
El análisis de series de tiempo en los mercados financieros es fundamental para la toma de decisiones estratégicas. Las acciones de Tesla Inc. representan un caso de estudio particularmente interesante debido a su volatilidad inherente y su impacto significativo en los mercados globales.
[PLACEHOLDER: Introduce los conceptos fundamentales de ARIMA, su importancia y utilidad en pronósticos de series temporales]
Los modelos ARIMA combinan componentes autorregresivos, de integración y de media móvil para capturar dinámicas complejas en datos temporales.
[PLACEHOLDER: Contexto de Tesla Inc., su cotización en bolsa, período de análisis seleccionado, eventos significativos que han afectado el precio]
[PLACEHOLDER: Carga tus datos y proporciona estadísticas completas de la serie]
# Cargar datos de Tesla
datos_tesla <- read.csv("tesla_data.csv")
summary(datos_tesla$Close)
sd(datos_tesla$Close)
| Estadístico | Valor |
|---|---|
| Media | [Inserta] |
| Mediana | [Inserta] |
| Desv. Est. | [Inserta] |
| Mínimo | [Inserta] |
| Máximo | [Inserta] |
Ventana de Entrenamiento (2022-10-07 → 2025-09-30) Ventana de Prueba (2025-10-01 → presente) Tabla resumen: observaciones por conjunto Gráfico: Serie con partición Train/Test
Entrenamiento=window(Precio, end="2025-09-30")
Prueba=window(Precio, start = "2025-10-01")
df_train <- data.frame(
Fecha = index(Entrenamiento),
Precio = as.numeric(Entrenamiento),
Conjunto = "Entrenamiento"
)
df_test <- data.frame(
Fecha = index(Prueba),
Precio = as.numeric(Prueba),
Conjunto = "Prueba"
)
df_completo <- bind_rows(df_train, df_test)
fecha_corte <- as.Date("2025-10-01")
ggplot(df_completo, aes(x = Fecha, y = Precio)) +
geom_ribbon(data = df_train,
aes(ymin = min(df_completo$Precio) * 0.95, ymax = Precio),
fill = qqq_pal$primary, alpha = 0.08) +
geom_ribbon(data = df_test,
aes(ymin = min(df_completo$Precio) * 0.95, ymax = Precio),
fill = qqq_pal$secondary, alpha = 0.15) +
geom_line(data = df_train, color = qqq_pal$primary, linewidth = 0.9) +
geom_line(data = df_test, color = qqq_pal$secondary, linewidth = 1.1) +
geom_vline(xintercept = fecha_corte,
linetype = "dashed", color = qqq_pal$negative, linewidth = 0.8) +
annotate("text", x = fecha_corte, y = max(df_completo$Precio) * 1.02,
label = "Corte: 01-Oct-2025", hjust = -0.05, vjust = 0,
color = qqq_pal$negative, fontface = "bold", size = 3.5) +
annotate("label",
x = as.Date("2024-01-01"),
y = max(df_completo$Precio) * 0.85,
label = paste0("ENTRENAMIENTO\n", nrow(df_train), " observaciones"),
fill = qqq_pal$primary, color = "white",
fontface = "bold", size = 3.5, label.padding = unit(0.5, "lines")) +
annotate("label",
x = max(df_test$Fecha) - 10,
y = min(df_completo$Precio) * 1.15,
label = paste0("PRUEBA\n", nrow(df_test), " obs."),
fill = qqq_pal$secondary, color = "white",
fontface = "bold", size = 3.2, label.padding = unit(0.4, "lines")) +
scale_x_date(date_breaks = "4 months", date_labels = "%b %Y",
expand = expansion(mult = c(0.02, 0.05))) +
scale_y_continuous(labels = dollar_format(prefix = "$"),
expand = expansion(mult = c(0.05, 0.08))) +
labs(
title = "Partición de Datos: Entrenamiento vs Prueba",
subtitle = "QQQ (Nasdaq-100 ETF) | Serie de precios de cierre diarios",
x = NULL,
y = "Precio de Cierre (USD)",
caption = paste0("Fuente: Yahoo Finance | Período: ",
min(df_completo$Fecha), " a ", max(df_completo$Fecha))
) +
theme_minimal(base_size = 12) +
theme(
plot.background = element_rect(fill = "transparent", color = NA),
panel.background = element_rect(fill = "transparent", color = NA),
plot.title = element_text(face = "bold", size = 16, color = qqq_pal$text_dark,
margin = margin(b = 5)),
plot.subtitle = element_text(size = 11, color = qqq_pal$secondary,
margin = margin(b = 15)),
plot.caption = element_text(size = 9, color = qqq_pal$text_gray,
margin = margin(t = 15), hjust = 0),
axis.title.y = element_text(face = "bold", size = 10, color = qqq_pal$text_gray),
axis.text = element_text(size = 9, color = qqq_pal$text_gray),
axis.text.x = element_text(angle = 45, hjust = 1),
panel.grid.major = element_line(color = qqq_pal$grid, linetype = "dashed", linewidth = 0.4),
panel.grid.minor = element_blank(),
plot.margin = margin(20, 25, 15, 15)
)
Cumplimiento del requisito mínimo (60 períodos) Tamaño del test set para validar 10 pronósticos Proporción train/test (~95%/5%)
El primer paso en la metodología Box-Jenkins consiste en verificar si la serie temporal es estacionaria, condición necesaria para la aplicación de modelos ARIMA.
Se evaluó la estacionariedad de la serie de precios de cierre mediante dos enfoques complementarios: análisis visual de la función de autocorrelación (ACF) y la prueba formal de Dickey-Fuller Aumentada (ADF).
Análisis Visual: Función de Autocorrelación
Prueba Formal: Test de Dickey-Fuller Aumentado
[INSERTAR TABLA ADF]
[INSERTAR CONCLUSIÓN: Serie NO estacionaria]
Dado que la serie en niveles no es estacionaria, se procede a aplicar diferenciación de primer orden para estabilizar la media.
[INSERTAR CÓDIGO Y GRÁFICO COMPARATIVO]
[INSERTAR GRÁFICO ACF - Serie diferenciada]
[INSERTAR TABLA ADF - Serie diferenciada]
Conclusión: Con un p-valor < 0.05, se rechaza H₀ y se confirma que la serie diferenciada ES estacionaria. Por tanto, el orden de integración es d = 1.
Con la serie diferenciada estacionaria, se analizan los correlogramas ACF y PACF para identificar los órdenes p (AR) y q (MA) del modelo.
[INSERTAR GRÁFICO DUAL ACF/PACF]
[INSERTAR TABLA DE PATRONES IDENTIFICADOS]
Basándose en el análisis visual y la función
auto.arima(), se proponen los siguientes modelos
candidatos:
[INSERTAR TABLA DE MODELOS CANDIDATOS]
[CÓDIGO Y RESUMEN DE CADA MODELO]
[INSERTAR TABLA COMPARATIVA: AIC, AICc, BIC]
[INSERTAR TABLA accuracy()]
[INSERTAR checkresiduals() PERSONALIZADO]
[INSERTAR TABLA LJUNG-BOX]
[CONCLUSIÓN: ¿Residuos son ruido blanco?]
[INSERTAR TABLA DE PRONÓSTICOS]
[INSERTAR GRÁFICO DE PRONÓSTICO]
[INSERTAR GRÁFICO PREDICHO VS REAL]
[INSERTAR TABLA DE ERRORES]
[PLACEHOLDER: Resumen de hallazgos principales del análisis ARIMA]
[PLACEHOLDER: Implicaciones de los pronósticos para inversionistas y analistas de mercado]
[PLACEHOLDER: Limitaciones del modelo y aspectos no capturados]
[PLACEHOLDER: Sugerencias para mejoras y extensiones del análisis]